Cloud computing allows cloud providers to pool a collection of physical computing devices and enables the pool of computing devices to be shared and used on demand by a plurality of tenants. Clouds can provide Infrastructure as a Service (IaaS), where virtual resources are provided in the cloud and made accessible to tenants as a service. Tenants, such as users and enterprises, can access virtual machines, virtual storage volumes, and even run applications on demand in the cloud. Cloud providers incur significant capital expenses and operating expenses when implementing and maintaining the pool of resources. Tenants and cloud providers often have high demands for performance. Accordingly, cloud providers are always looking for ways to improve the efficiency and performance of the cloud so that resources are used efficiently and in a cost-effective manner.